<!DOCTYPE html>
<html>
<head>
	<title>HOWTO multimedia</title>
	<meta charset="utf-8">
	<link href="./manual.css" rel="stylesheet" type="text/css">
</head>
<body>
	<div id="container">
		<header class="logo-header">
			<img class="header-logo" alt="Logo" src="puppylogo96.png">
			<h1>HOWTO: Multimedia</h1>
		</header>
		<section>
			<p>
				Puppy has an excellent range of multimedia editing, conversion and viewing tools. The links are to "help" pages on each program.
			</p>
			<p>
				Note that the links will only exist if the appropriate package is installed. Puppy is now highly customisable, with the introduction of <i>Woof</i>, and a live-CD can easily be built with packages of your choice. I have greyed-out the packages that may not be in the 'standard' release (non-customised) of Puppy -- but, they are all installable using the Puppy Package Manager.
			</p>
		</section>
		<section>
			<h2>Graphics</h2>
			<p>
				Puppy has a very useful collection of applications and utilities for manipulating graphic images, both bitmap and vector. Note that there has been a trend away from the GIF format due to a patent on the LZW compression algorithm, however that patent has expired in all countries of the world, so this is not an issue any more (but, GIF is only useful for animation, as PNG is far superior in all other respects).<br>
				The following table is a summary:
			</p>
			<table>
				<tbody>
					<tr>
						<td>
							<a href="xpaint.htm">Xpaint</a>
						</td>
						<td>
							Xpaint is a bitmap (raster) picture editor and viewer. Formats that can be opened and saved are gif, ico, jpeg, png, ppm, ps, pdf, tiff, xbm, xpm and xwd.
						</td>
					</tr>
					<tr>
						<td>
							<a href="mtpaint.htm">mtPaint</a>
						</td>
						<td>
							This is another bitmap image editor, and specialises in pixel-level editing of images, especially icons. I have found mtPaint to be an excellent general-purpose paint program.<br>
							In fact, my opinion of mtPaint keeps going up, as the author is developing it rapidly. The 0.45 version supports scaling of images, which is a serious shortcoming of Xpaint. V0.50 supports rotation by an arbitrary angle. Even cropping, that is supported in Xpaint, is much more sophisticated in mtPaint.
						</td>
					</tr>
					<tr>
						<td>
							<a href="figurine/index.html">Figurine</a>
						</td>
						<td>
							Figurine is a vector image editor and the native format is fig. Only fig files can be opened, however Figurine can use fig2dev to export to a variety of vector and bitmap formats.<br>
							Note that Figurine does not show the option to export to svg although fig2dev supports it. I intend to modify the source code of Figurine to fix this, however for now conversion from fig to svg can be achieved by using fig2dev directly on the commandline.
						</td>
					</tr>
					<tr>
						<td>DIA</td>
						<td>
							A very nice vector graphics editor with libraries of shapes. Can import/export bitmap, xfig and svg formats. One disadvantage is that text and shapes cannot be arbitrarily rotated, however it will be possible to perform arbitrary rotations in Figurine and import into DIA. Libraries of custom shapes can be created.<br>
							The documentation is online: <a href="http://www.gnome.org/projects/dia/docs.html">http://www.gnome.org/projects/dia/docs.html</a>.
						</td>
					</tr>
					<tr>
						<td>Sodipodi</td>
						<td>
							A very sophisticated SVG vector editor. SVG means "Scalable Vector Graphics" and is the open source equivalent of Flash. That is, vector diagrams, animation, user interaction on web pages. SVG plugins are available for all major web browsers, the most popular is from Adobe (a free download). However, even if you are not interested in SVG as-such, Sodipodi is a great creation tool for drawings that can be exported to PNG raster or Postscript (and indirectly to PDF and other vector formats via GSview) formats.<br>
							Documentation is to be found at <a href="http://www.sodipodi.com">www.sodipodi.com</a> and a tutorial is at <a href="http://hawthorn.csse.monash.edu.au/%7Enjh/programming/draw-packages/sodipodi/">hawthorn.csse.monash.edu.au/~njh/programming/draw-packages/sodipodi/</a>.
						</td>
					</tr>
					<tr>
						<td>InkLite</td>
						<td>
							This is a fork of an early version of Inkscape, and is basically the same as Sodipodi, with a few tweaks and a conventional user interface. The Sodipodi documentation applies to InkLite.
						</td>
					</tr>
					<tr>
						<td>Inkscape</td>
						<td>
							This is the big brother of InkLite. Originally it was a fork of Sodipodi, then got converted from C to C++ then later required the GTKmm and Glibmm libraries. It also has many more features. Consequently it is very big. Also, many of its plugins require Python to be installed (available in the 'devx' SFS file). Inkscape may not be in the 'standard' Puppy but is available as a PET package.<br>
							Online documentation: <a href="http://www.inkscape.org/doc/index.php?css=css/base.css">http://www.inkscape.org/doc/index.php?css=css/base.css</a>
					  </td>
					</tr>
					<tr>
						<td>
							<a href="impress/impdoc.html">Impress</a>
						</td>
						<td>
							This is a very interesting Tcl/Tk GUI application for creating slide presentations. Not up to "Powerpoint" standard though.<br>
							Impress can rotate objects by any arbitrary angle, and is supposed to also be able to rotate text. It does this by using the pstoedit program to vectorise text, which can then be rotated. However, text rotation is a "work in progress" as it currently does not work and I have sent an email to the author, awaiting a reply. <br>
							One more thing -- the author reports that PowerPoint can export in Postscript format, which Impress can import quite well. See the Impress documentation.
						</td>
					</tr>
					<tr>
						<td>Imposter</td>
						<td>
							This is a player for presentations created with Open Office Impress. You cannot actually create these presentations in Puppy, just play them. If Impress can import PowerPoint presentations, that would be a route to be able to play them on Puppy.<br>
							Imposter is a GTK2 application, so has antialiased fonts.<br>
							Home page: <a href="http://imposter.sourceforge.net/">http://imposter.sourceforge.net/</a>
						</td>
					</tr>
					<tr>
						<td>FullerScreen</td>
						<td>
							This is an addon for SeaMonkey, that allows creation of Powerpoint-like presentations. It does however need basic HTML knowledge. Builtin to Puppy 4.3, see the 'Graphic' menu.
						</td>
					</tr>
					<tr>
						<td>
							<a href="gtksee.htm">GTKSee</a>
						</td>
						<td>
							GTKSee is an image viewer, manager and slideshow. It displays thumbnails, like Rox, but has a lot more functionality optimised for managing images, such as showing the dimensions of images when there is mouse-over a thumbnail. The slideshow feature is very nice.
						</td>
					</tr>
					<tr>
						<td>Fotoxx</td>
						<td>
							This is the default image viewer in Puppy 4.0 - 4.2. It also has some editing features.
						</td>
					</tr>
					<tr>
						<td>Gimageview</td>
						<td>
							This is a sophisticated image viewer. It even plays video files.
						</td>
					</tr>
					<tr>
						<td>Gpicview</td>
						<td>
						  A basic image viewer.
						</td>
					</tr>
					<tr>
						<td>Gqview</td>
						<td>Yet another image viewer.</td>
					</tr>
					<tr>
						<td>
							<a href="http://xsisqox.github.com/Viewnior/">Viewnior</a>
						</td>
						<td>
							This is the default image viewer in Puppy 4.3.
						</td>
					</tr>
					<tr>
						<td>
							<a href="fig2dev.htm">fig2dev</a>
						</td>
						<td>
							Converts a fig vector image to a variety of vector and bitmap formats. This version for Puppy has been compiled to support the following vector formats: cgm, pic, ps, emf, eps, pdf, and svg. Also the following bitmap formats: gif, jpeg, pcx, png, ppm, sld, tiff, xbm, xpm.<br>
							Note that both Figurine and ABS use fig2dev for exporting.
						</td>
					</tr>
					<tr>
						<td>
							<a href="pstoedit.htm">pstoedit</a>
						</td>
						<td>
							The Postscript and PDF viewer <a href="gsview.htm">GSview</a> uses pstoedit to export Postscript and PDF files to various vector formats. Supported formats are ps, ai (Adobe Illustrator), idraw, fig, xfig, tgif, tk, hpgl, pic, mma, mpost, sk (Sketch), kil (Kontour), pdf, java1, java2, dxf, rpl, rib, lwo, dxf.
						</td>
					</tr>
					<tr>
						<td>
							<a href="gifsicle/index.html">gifsicle</a>
						</td>
						<td>
							gifsicle is a console program for constructing animated gifs. There is also a viewer -- note also, Firefox or Opera can play animated gifs. Most importantly, gifsicle can analyse frames and create an animated gif in which subsequent frames only have the changes from the previous frame, greatly reducing size.
						</td>
					</tr>
					<tr>
						<td>
							<a href="scalerx.htm">scalerx</a>
						</td>
						<td>
							scalerx is a superb console program. If you have a small bitmap image and you want to make it bigger, it will have jagged edges, however scalerx analyses the image and smooths the edges. Only works with png images.
						</td>
					</tr>
					<tr>
						<td>
							<a href="xli.htm">xli</a>
						</td>
						<td>
							This is a console application to display an image in a window or to load it onto the root window (the desktop background). Supported image types are fbm, Sun Rasterfile, CMU WM Raster, pbm, Faces Project, png, gif, jfif, jpeg, Utah RLE, Windows OS/2 RLE, Photograph on CD, X Window Dump, Targa, McIDAS, G3 FAX, PC Paintbrush, GEM, MacPaint, X Pixmap (xpm), X Bitmap (xbm).
						</td>
					</tr>
					<tr>
						<td>
							<a href="qiv.htm">qiv</a>
						</td>
						<td>
							This does the same as xli and is smaller and faster. qiv replaces xli in Puppy version 2.10 onward.
						</td>
					</tr>
					<tr>
						<td>Gview</td>
						<td>
							Basic application to display an image in a window, used in Puppy 4.xx.
						</td>
					</tr>
					<tr>
						<td>grabc</td>
						<td>
							This is in the menu as "RGB screen color picker", and is a simple application that displays a crosshair that is placed as desired then a left-click samples the underlying color and displays its red-green-blue components.
						</td>
					</tr>
						<tr>
							<td>Gcolor2</td>
							<td>
								This is the color chooser and screen color picker used in Puppy 4.xx.
							</td>
						</tr>
					<tr>
						<td>netpbm</td>
						<td>
							<p>
								This is a package of graphic file format conversion and manipulation utilities. Puppy has a subset of the full package. Included with Puppy are: anytopnm (just a shell script that determines file type and calls one of the other conversion programs), giftopnm, jpegtopnm, pgmtopbm, pbmtext, pbmtoxbm, pngtopnm, pnmalias, pnmconvol, pnmcut, pnmnlfilt, pnmrotate, pnmscale, pnmsmooth, pnmtops, pnmtotiff, pnmtojpeg, pnmtopng, ppmdither, ppmlabel, ppmrainbow, ppmtogif, ppmtopgm, ppmtoxpm, ppmtobmp, ppmquant, pstopnm, tifftopnm, xbmtopbm, xpmtoppm, xwdtopnm.
							</p>
							<p>
								<i>pbm</i> is a monochrome format, <i>pgm</i> is greyscale, <i>ppm</i> is color, and <i>pnm</i> format covers all three. Many applications in Puppy use these utilities and they are mighty useful in scripts also as input and outputs can be piped. Online documentation is to be found at <a href="http://netpbm.sourceforge.net/">netpbm.sourceforge.net</a>.
							</p>
						</td>
					</tr>
					<tr>
						<td>
							<a href="http://www.gphoto.org/proj/gtkam/">Gtkam</a>
						</td>
						<td>
							Acquire photos from a digital camera. This is standard in Puppy 4.xx.
						</td>
					</tr>
					<tr>
						<td>
							<a href="http://www.xsane.org/">Xsane</a>
						</td>
						<td>
								A GUI for acquiring images from a scanner. This is in Puppy 4.xx.
						</td>
					</tr>
				</tbody>
			</table>
		</section>
		<section>
			<h2>Video</h2>
			<p>
				From version 0.9.6, Puppy is using Xine-libs, which handles a very wide range of audio and video formats.
			</p>
			<table>
				<tbody>
					<tr>
						<td>Xine-libs</td>
						<td>
							Xine-libs is the backend libraries providing support for a wide range of audio and video formats. Documentation is to be found online: <a href="http://xine.sourceforge.net/">xine.sourceforge.net</a>
						</td>
					</tr>
					<tr>
						<td>Gxine</td>
						<td>
							<p>
								Gxine is a GUI frontend to Xine-libs, and can play video DVDs, various video files including Quicktime, MPG and AVI.
							</p>
							<p>
								Playing DVDs works real nice, provided that Puppy has correctly identified your DVD drive -- you should find the link /dev/dvd pointing to the actual drive, for example /dev/hdc (or whatever).
							</p>
						</td>
					</tr>
					<tr>
						<td>Mplayer</td>
						<td>
							Another multimedia (video and audio) player. Available as a PET package.
						</td>
					</tr>
					<tr>
						<td>Pdvdrsab</td>
						<td>DVD video ripper. Puppy enthusiast 'plinej' has developed this. See 'Multimedia' menu.</td>
					</tr>
				</tbody>
			</table>
			<p>
				Gxine/Xine can have "codec" files added onto it to extend its capabilites -- see note in Audio section below.
			</p>
		</section>
		<section>
			<h2>Audio</h2>
			<p>
				Xine-libs and Gxine provide a generic media player, including support for a wide range of audio file formats.
			</p>
			<table>
				<tbody>
					<tr>
						<td>
							<a href="wavplay.htm">Wavplay</a>
						</td>
						<td>
							<p>
								This is a console application that plays and records wav audio files.
							</p>
							<p>
								Note, I have kept this application in Puppy although it is redundant with the advent of Gxine (see below).
							</p>
						</td>
					</tr>
					<tr>
						<td>Gxine</td>
						<td>
							Gxine is a media player that will handle a wide range of audio file formats. Gxine can also play audio streamed from the Internet.<br>
							Will play audio CDs without requiring an internal cable connecting audio-out on CD-drive to sound card -- other CD players listed below require the cable.
						</td>
					</tr>
					<tr>
						<td>
							<a href="ripperX.htm">ripperX</a>
						</td>
						<td>
							<p>
								Rips songs off audio CDs and saves them as wav or mp3.
							</p>
							<p>
								You could use ripperX as just a CD player. One great thing is the support for cddb -- if connected to the Internet, just click the "cddb" button and all the CD song titles will get downloaded.
							</p>
						</td>
					</tr>
					<tr>
						<td>Asunder</td>
						<td>
							Rips songs off audio CDs.
						</td>
					</tr>
					<tr>
						<td>RipOff</td>
						<td>
							Rips songs off audio CDs. Default in Puppy 4.xx.
						</td>
					</tr>
					<tr>
						<td>Pcdripper</td>
						<td>
							Rips songs off audio CDs. Also in Puppy 4.xx.
						</td>
					</tr>
					<tr>
						<td>GplayCD</td>
						<td>
							Plays audio CDs. Gxine and ripperX can also play audio CDs.
						</td>
					</tr>
					<tr>
						<td>XfreeCD</td>
						<td>
							Plays audio CDs and supports cddb.<br>
							Note, hangs if a CD not inserted before starting this app.<br>
							Project home page: <a shref="http://xfreecd.sourceforge.net/">http://xfreecd.sourceforge.net/</a>
						</td>
					</tr>
					<tr>
						<td>
							<a href="cdp.htm">cdplay</a>
						</td>
						<td>
							Console application to play audio CDs.
						</td>
					</tr>
					<tr>
						<td>
							<a href="gcombust/FAQ.html">Gcombust</a>
						</td>
						<td>
							Can be used to create audio CDs from wav or mp3 files.
						</td>
					</tr>
					<tr>
						<td>WishCD</td>
						<td>
							Can be used to create audio CDs from wav files.
						</td>
					</tr>
					<tr>
						<td>Graveman</td>
						<td>
							Can be used to create audio CDs
						</td>
					</tr>
					<tr>
						<td>
							<a href="setvol.txt">setvol</a>
						</td>
						<td>
							This is a small console utility to set or get the volume.
						</td>
					</tr>
					<tr>
						<td>
							<a href="xtmix.htm">xtmix</a>
						</td>
						<td>
							GUI sound mixer.
						</td>
					</tr>
					<tr>
						<td>Sgmixer</td>
						<td>
							GUI sound mixer used in Puppy 4.xx.
						</td>
					</tr>
					<tr>
						<td>Snack audio player</td>
						<td>
							This is an alternative to Gxine for playing audio files. Uses the Snack library. Needs Tcl/Tk.
						</td>
					</tr>
					<tr>
						<td>XS audio recorder and editor</td>
						<td>
							XS uses the Snack library, so handles a wide range of file formats. Apart from recording, or editing existing sound files, XS is useful to convert sound files from one format to another. Needs Tcl/Tk.
						</td>
					</tr>
					<tr>
						<td>Sweep</td>
						<td>
							Sound recorder and editor. Many features.<br>
							Online docs: <a href="http://www.metadecks.org/software/sweep/tutorials/">http://www.metadecks.org/software/sweep/tutorials/</a>
						</td>
					</tr>
					<tr>
						<td>mhWaveEdit</td>
						<td>
							Sound recorder and editor. Can also be used to convert between different audio file formats. Default in Puppy 4.xx.
						</td>
					</tr>
					<tr>
						<td>madplay</td>
						<td>
							Console mp3 player.<br>
							Online docs: <a href="http://www.linuxmanpages.com/man1/madplay.1.php">http://www.linuxmanpages.com/man1/madplay.1.php</a>
						</td>
					</tr>
					<tr>
						<td>Pmetatagger</td>
						<td>
							View and edit text tags in audio files.
						</td>
					</tr>
				</tbody>
			</table>
			<p>
				Gxine/Xine can play streamed audio and video off the Internet, so for example, you can listen to Internet radio stations. However, mainly for legal reasons the most up-to-date RealAudio and MicrosoftMedia "codec" files are not included in Puppy, which means that some radio stations may not work. However, you can download and install them -- see the "Streaming audio and video Gxine plugin" section at the bottom of this page.
			</p>
		</section>
		<section>
			<h2>Scanning</h2>
			<p>
				Puppy has the SANE scanner backend (with all the drivers), and XSane GUI frontend. This is all built-in to Puppy 4.xx, nothing else to install.
			</p>
		</section>
		<section>
			<h2>Printing</h2>
			<p>
				Printing in Puppy is based around Ghostscript and CUPS, and the main applications such as Abiword, Amaya, Xpaint and Firefox, generate files in Postscript format for printing. The gs program is able to convert Postscript files to a format suited to a particular printer.
			</p>
			<p>
				The Ghostscript package has its own set of printer drivers, however that is very limited, and Puppy uses the Gutenprint drivers, that work with Ghostscript. This adds support for over 1300 printers.
			</p>
			<p>
				To be able to print, you must first run the CUPS Printer Wizard. This enables you to choose the correct driver and configure it to work in Puppy. You will find this Wizard in the 'Setup' menu.
			</p>
			<p>
				CUPS, Ghostscript, fonts, and the full set of Gutenprint drivers are built-in to Puppy, so nothing else to install for printing. However, if you have a Hewlett Packard printer that is not in the Gutenprint driver-suite, there is an extra PET package available, named 'hpijs' or 'hplip'.
			</p>
		</section>
		<hr>
		<section>
			<h2>Streaming audio and video (Gxine) plugin</h2>
			<p>
				Gxine is setup as a plugin for Firefox/Seamonkey, so you can, for example, listen to Internet radio stations. Many will work, however in same cases you need to get later "codec" files for RealAudio and WindowsMedia, the two formats most commonly used for streaming audio. You do not need to install the RealPlayer or any other player, as codec files can be added to Gxine.
			</p>
			<p>
				The collection of "extra codecs" available from the Mplayer site are available as a PET package.<br>
				Just run the PETget package manager (see Menu -&gt; Setup -&gt; Puppy package manager, or just click on the 'install' icon on the desktop) and install the package named "mplayer_codecs_full".
			</p>
		</section>
		<hr>
		<footer class="legal">(c) Copyright 2004,2005,2006,2008 Barry Kauler</footer>
	</div>
</body>
</html>
